<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script type="text/javascript">
        /***
         描述
            找出元素 item 在给定数组 arr 中的位置
            输出描述：
            如果数组中存在 item，则返回元素在数组中的位置，否则返回 -1
            示例1
            输入：[ 1, 2, 3, 4 ], 3
            输出：2
         */
        function indexOf(arr, item) {
            return arr.indexOf(item);
        }
        console.log(indexOf([1, 2, 3], 3));

        // 遍历
        function indexOf1(arr, item) {
            let index = [];
            arr.forEach(function (a, i) {
                if (a === item) {
                    index.push(i);
                }
            })
            return index;
        }
        console.log(indexOf1([1, 2, 3, 4, 2], 2));

        // 遍历
        function indexOf2(arr, item) {
            let newArr = [];
            arr.map((m, i) => {
                m === item ? newArr.push(i) : [];
            })
            return newArr;
        }
        console.log(indexOf2([1, 2, 3, 2, 4, 2], 2));

        // 循环
        function indexOf3(arr, item) {
            let index = 0;
            for (let i = 0; i < arr.length; i++) {
                if (arr[i] === item) {
                    index = i;
                    break;
                } else {
                    index = -1;
                }
            }
            return index;
        }
        console.log(indexOf3([1, 2, 3], 1));

        // findIndex 找到返回下标 没找到返回-1
        function indexOf4(arr, item) {
            return arr.findIndex(m => m === item);
        }
        console.log(indexOf4([1, 2, 3], 2));
    
    </script>
</body>

</html>